using System.Collections.Generic;
using System.Linq;
using UnityEngine;

// 建筑物模型脚本
public class BuildingModel : MonoBehaviour
{
    [SerializeField] private Transform wrapper;

    // 公开的旋转角度属性，获取wrapper的Y轴欧拉角
    public float Rotation => wrapper.eulerAngles.y;

    // 存储建筑物形状单元
    private BuildingShapeUnit[] shapeUnits;

    private void Awake()
    {
        // 获取所有子物体中的BuildingShapeUnit组件
        shapeUnits = GetComponentsInChildren<BuildingShapeUnit>();
    }

    // 旋转方法，接收旋转步长参数
    public void Rotate(float rotationStep)
    {
        // 在Y轴上旋转wrapper物体
        wrapper.Rotate(new Vector3(0, rotationStep, 0));
    }

    // 获取所有建筑物单元的位置
    public List<Vector3> GetAllBuildingPositions()
    {
        // 使用LINQ查询所有shapeUnits的位置并转换为List
        return shapeUnits.Select(unit => unit.transform.position).ToList();
    }
}